package co.yixiang.modules.monitoring.mapper;

import co.yixiang.common.mapper.CoreMapper;
import co.yixiang.modules.adopt.entity.domain.YxAdoptProduct;
import co.yixiang.modules.monitoring.entity.domain.YxMonitoring;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface MonitoringMapper extends CoreMapper<YxMonitoring> {


    @Update("update yx_monitoring set position = ST_GeomFromText(#{position}) WHERE id = #{id}")
    void updatePosition(@Param("position") String position, @Param("id") String id);

    /**
     * 前端小程序查询
     * 不同维度进行排序
     * 如果自定义的方法还希望能够使用MP提供的Wrapper条件构造器，则需要如下写法
     * @param lng 经度
     * @param lat 纬度
     * @param monitoringWrapper mybatis查询构造器
     * @return
     */
    @Select("SELECT *,ST_Distance_sphere(position, point(#{lng}, #{lat})) 'distance' FROM yx_monitoring ${ew.customSqlSegment}")
    List<YxMonitoring> selectByMyWrapper(@Param("lng") Double lng, @Param("lat") Double lat, @Param(Constants.WRAPPER) Wrapper<YxMonitoring> monitoringWrapper);

}
